{% load static %}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Decompiler Explorer - Frequently Asked Questions</title>
    <meta name="description" content="Decompiler Explorer is an interactive online decompiler which shows equivalent C-like output of decompiled programs from many popular decompilers.">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">

    <meta property="og:type" content="website">
	<meta property="og:url" content="https://dogbolt.org">
	<meta property="og:site_name" content="Decompiler Explorer">
	<meta property="og:title" content="Decompiler Explorer - Frequently Asked Questions">
	<meta property="og:description" content="Decompiler Explorer is an interactive online decompiler which shows equivalent C-like output of decompiled programs from many popular decompilers.">
	<meta property="og:image" content="TODO">

	<meta name="twitter:card" content="summary">
	<meta name="twitter:site" content="@dogboltorg">
	<meta name="twitter:creator" content="@dogboltorg">
	<meta name="twitter:title" content="Decompiler Explorer - Frequently Asked Questions">
	<meta name="twitter:description" content="Decompiler Explorer is an interactive online decompiler which shows equivalent C-like output of decompiled programs from many popular decompilers.">
	<meta property="twitter:image" content="TODO">

    <link rel="preconnect" href="https://fonts.googleapis.com">
	<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
	<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600&display=swap" rel="stylesheet">

    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
    <link rel="stylesheet" href="{% static 'css/style.css' %}">

    <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.14/ace.min.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div class="d-flex flex-column" id="main">
    <header>
        <div class="container my-3">
            <div class="row align-items-center">
                <div class="col-md-9">
                    <a class="page-title" href="{% url 'explorer:index' %}">
                        <img alt="Dogbolt Logo" src="/static/img/dogbolt-small.png">
                        <h1 class="my-0">Decompiler Explorer</h1>
                    </a>
                </div>
                <div class="col-md-3">
                    <a href="{% url 'explorer:faq' %}" class="float-end">What is this?</a>
                </div>
            </div>
        </div>
    </header>
    <section id="content" class="container">
        <div class="row my-3">
            <h3>Frequently Asked Questions</h3>
            <section id="what-is-this">
                <h5>What is this?</h5>
            <p>This is the Decompiler Explorer! It is an interactive online decompiler which shows equivalent C-like output of decompiled programs from many popular decompilers. It's meant to be the reverse of the amazing <a href="https://godbolt.org/">Compiler Explorer</a>.</p>
            </section>
            <section id="what-is-a-decompiler">
                <h5>What is a decompiler?</h5>
                <p>A decompiler does the opposite of a compiler! It takes binaries and turns them back into source code (with varying degrees of success depending on the compiler, compiler settings, language, architecture, complexity, and many other factors).</p>
            </section>
            <section id="who-made-it">
            <h5>Who made it?</h5>
                <p>Vector 35, the developers of <a href="https://binary.ninja">Binary Ninja</a> (one of the decompilers used on the site), created an internal original prototype which eventually became this thanks to input from the community and some additional inspiration from tools like <a href="https://github.com/mborgerson/mdec">mdec</a>. Decompiler Explorer is now a fully open source project <a href="https://github.com/decompiler-explorer/decompiler-explorer">available on GitHub</a>.</p>
                <p>The current iteration is meant to be a community maintained tool and as such, <a href="https://github.com/decompiler-explorer/decompiler-explorer">contributions are welcome</a>. More details are available on an <a href="https://binary.ninja/2022/07/13/introducing-decompiler-explorer.html">introductory blog post</a>.</p>
            </section>
            <section id="what-is-in-it">
                <h5>What is in it?</h5>
                <p>The following decompilers are currently a part of the Decompiler Explorer:</p>
                <ul class="mx-3">
                    <li><a href="https://angr.io/">angr</a></li>
                    <li><a href="https://binary.ninja">Binary Ninja</a></li>
                    <li><a href="https://github.com/BoomerangDecompiler/boomerang">Boomerang</a></li>
                    <li><a href="https://github.com/fkie-cad/dewolf">dewolf</a></li>
                    <li><a href="https://ghidra-sre.org">Ghidra</a></li>
                    <li><a href="https://hex-rays.com/ida-pro/">Hex-Rays (IDA Pro)</a></li>
                    <li><a href="https://www.backerstreet.com/rec/rec.htm">REC Studio</a></li>
                    <li><a href="https://github.com/uxmal/reko">Reko</a></li>
                    <li><a href="https://www.relyze.com/">Relyze</a></li>
                    <li><a href="https://github.com/avast/retdec">RetDec</a></li>
                    <li><a href="https://rev.ng">rev.ng</a></li>
                    <li><a href="https://github.com/yegord/snowman">Snowman</a></li>
                </ul>
            </section>
            <section id="what-happens-to-the-binaries">
                <h5>What happens to the binaries?</h5>
                <p>All submitted binaries are saved and made available to any of the authors of the tools used so they may improve their decompilers. If you're such an author who would like access, <a href="https://github.com/decompiler-explorer/decompiler-explorer/issues">let us know!</a>.</p>
            </section>
            <section id="can-i-run-my-own">
                <h5>Can I run my own version of this site?</h5>
                <p>Not publicly with all tools. You may not run your own public version and include any of the commercial tools. This public service is being run with the express permission of the commercial entities involved and they do not intend for other public versions of this website to be run as they are not compatible with the relevant EULAs/licenses.</p>
                <p>Note that private instances <em>may or may not</em> be compatible depending on the type of license you have. The safest thing to do is to check with the vendors in question if you wish to run an internal service to verify your services complies with the terms of the license, or only use the open-source services.</p>
                <p>In particular, third-parties running their own copy will run afoul of the specific license limitations on <a href="https://docs.binary.ninja/about/license.html#commercial-license-named">time-sharing services</a> and <a href="https://hex-rays.com/ida_eula.pdf">derivative works</a> in <a href="https://binary.ninja/">Binary Ninja</a> and <a href="https://hex-rays.com/ida-pro/">IDA Pro</a> respectively.</p>
                <p>Vector 35 has custom "headless" licenses for Binary Ninja that may be used for longer-term internal deployments (<a href="https://binary.ninja/support/">contact them</a> for more info).
            </section>
            <section id="where-is-the-code">
                <h5>Where is the code?</h5>
                <p>The Decompiler Explorer is completely open source and can be found at <a href="https://github.com/decompiler-explorer/decompiler-explorer">GitHub</a>.</p>
            </section>
            <section id="how-is-it-being-hosted">
                <h5>How is it being hosted?</h5>
                <p>Vector 35 and Hex-Rays jointly sponsor the hosting on <a href="https://digitalocean.com/">Digital Ocean</a> as a community service.</p>
                <p>Specifically, the infrastructure includes: </p>
                <ul class="mx-3">
                    <li>1 x "basic" dual-core, 4GB RAM web-front-end -- note that "basic" doesn't specify the exact CPU specs</li>
                    <li>4 x "basic" quad-core, 8GB RAM worker instances (sometimes scales temporarily to 8 depending on load)</li> 
                </ul>
            </section>
            <section id="is-there-an-api">
                <h5>Is there an API?</h5>
                <p>No, there is intentionally no public API for automation. The decompiler explorer is <em>not</em> meant for automation purposes. If you're interested in automating comparison of decompiler output, you'll need to contact the respective license holders about their terms of use.</p>
            </section>
            <section id="how-can-i-contribute">
                <h5>How can I contribute?</h5>
                <p>Please submit a pull request to the main <a href="https://github.com/decompiler-explorer/decompiler-explorer">GitHub repository</a>. Thanks!</p>
            </section>
        </div>
    </section>
    <footer class="fixed-bottom">
        <div class="container">
            <div class="row justify-content-between text-center my-2">
                <p class="mb-0 small">Decompiler Explorer is open source! Fork it on <a href="https://github.com/decompiler-explorer/decompiler-explorer">GitHub</a>!</p>
            </div>
        </div>
    </footer>
</div>
<script async defer data-website-id="e8f5e886-a15e-4aca-9e17-4ebed158a438" src="https://stats.ext.v35.us/yummi.js"></script>
</body>
</html>
